R

您所在的位置:网站首页 CRANR SCALE R

R

#R| 来源: 网络整理| 查看: 265

查看ggplot2包的官方文档,我们可以看到scale系列函数构成是有一定规律的。如scale_fill_gradient和 scale_x_continuous

三个单词用_连接

第一个都是scale第二个是要更改的内容,如color fill x y linetype shape size 等第三个是具体的类型

本文分为以下两个部分

对颜色的各种修改(color fill)对坐标轴的更改(x y)对颜色的修改

颜色的函数名中,第二个单词有color和fill两个,看你分组使用的是哪一个就用哪一个,比如柱状图,fill是柱子的填充颜色,color是柱子的边框颜色,一般我们都用fill接分组变量,这时就应该使用scale_fill_系列函数来更改颜色。再比如是geom_point作图使用color分组,则加scale_color_系列函数。

根据第三个单词的不同,更换的颜色分为以下几种

1.离散型

manual 直接指定分组使用的颜色hue 通过改变色相(hue)饱和度(chroma)亮度(luminosity)来调整颜色brewer 使用ColorBrewer的颜色grey 使用不同程度的灰色

2.连续型

gradient 创建渐变色distiller 使用ColorBrewer的颜色identity 使用color变量对应的颜色,对离散型和连续型都有效

这里分成两类,离散型和连续型

离散型的在颜色变量是离散变量的时候使用,比如分类时每一类对应一种颜色连续型的在颜色变量是连续变量的时候使用,比如0-100的数,数值越大颜色越深这样

下面我们分为两个部分

更改颜色的各个函数的使用通用参数设置

更改颜色的各个函数的使用

library(ggplot2) p0 # hue # 主要参数:h = c(0, 360) + 15, c = 100, l = 65 # h指定色域,范围越大,颜色区分度越大。范围整体移动改变取色区域 # c越大饱和度越高 p0 p0 + scale_fill_hue(l=8) p0 + scale_fill_hue(l=100) p0 + scale_fill_hue(c=200) p0 + scale_fill_hue(h=c(15,100)) p0 + scale_fill_hue(h=c(15,100)+100) p0 + scale_color_hue(h=c(15,100)) # 前面使用fill分组,用color系列无效 ggplot(mpg, aes(class))+geom_bar(aes(color=drv)) + scale_color_hue(h=c(15,100)) # 使用color分组才有效# brewer library(RColorBrewer) display.brewer.all() # 展示所有颜色 # 主要是palette参数调用色板 p0 p0 + scale_fill_brewer() # 默认使用Blues调色板中的颜色 p0 + scale_fill_brewer(palette = "Greens") p0 + scale_fill_brewer(palette = "Greens",direction = -1)# grey # 通过start end 两个参数指定,都在0-1范围内,0为黑,1为白 p0 p0 + scale_fill_grey() p0 + scale_fill_grey(start=1, end=0) p0 + scale_fill_grey(start=1, end=0.5)# 连续型 df # distiller # 将ColorBrewer的颜色应用到连续变量上 pp0 + scale_color_distiller(palette = "Spectral") pp0 + scale_color_distiller(palette = "Greens")# identity # 直接使用所接颜色变量元素指向的颜色 # 如果不能代表颜色就会报错 df0

通用参数设置

以上函数我们查看帮助文档看参数时,会发现有一个...,这代表除了本页列举的这些参数之外,这个函数还可以使用其他的参数,这些参数往往是几个函数共有的,所以在另外一个地方列举了出来。

我们直接输入函数名称查看源代码时,会发现分为两类

离散型调用了discrete_scale函数,...中的参数是对所有离散型函数通用的连续型函数调用了continuous_scale函数,...中的参数也是对所有连续型函数通用的

下面我将分别介绍这两类函数的参数

离散型函数所有参数使用?discrete_scale命令查看,下面只使用其中比较常用的一部分,连续型函数同理

p0 pp0 pp0 + scale_color_gradient(low = "white", high = "black", breaks=c(1,2,0.5), labels=c("a","b","c")) pp0 + scale_color_gradient("black", low = "white", high = "black", limits=c(0.5,2))对坐标轴的修改

这部分主要是对坐标轴做如下改变,比如

更改坐标轴名称更改x轴上标数的位置和内容显示对一个轴做统计变换只展示一个区域内的点更改刻度标签的位置

实现上面的这些可以使用scale_x等函数,同时像xlab这样的函数实现其中某一方面的功能,但是用起来更加方便

因为这里的数据也有连续和离散之分,所以也要使用不同的函数来实现。

# 横坐标是离散变量,纵坐标是连续变量 p0 # 连续变量可以更改标度,还可以进行统计变换 p0 p0 + scale_y_continuous("ylab_mpg") p0 + scale_y_continuous(breaks = c(10,20,30)) p0 + scale_y_continuous(breaks = c(10,20,30), labels=scales::dollar) p0 + scale_y_continuous(limits = c(10,30)) p0 + scale_y_reverse() # 纵坐标翻转,小数在上面,大数在下面 p0 + scale_y_log10() p0 + scale_y_continuous(trans = "log10") p0 + scale_y_sqrt()# 使用更简单易用 的函数 p0 + xlab("cyl") p0 + labs(x = "cyl") p0 + ggtitle("ggtitle",subtitle = "subtitle") p0 + xlim(c("4","6"))# 更改刻度标签的位置 p0 + scale_x_discrete(position = "top") + scale_y_continuous(position = "right")专栏信息

专栏主页:Data Analysis专栏目录:目录



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3